﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data;
using DAO;
using DTO;

namespace LogisticSystem_WebService
{
    /// <summary>
    /// Summary description for LogisticSystemWS
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class LogisticSystemWS : System.Web.Services.WebService
    {

        // Các biến toàn cục - Bị sai chỗ này : Nhớ các class của DAO phải public Class - Tại sao khi tạo DTO có public class còn DAO thì không có ?
        ChiNhanhDAO chinhanhDAO = new ChiNhanhDAO();
        ChuyenVanChuyenDAO chuyenvcDAO = new ChuyenVanChuyenDAO();
        DatVanChuyenDAO datvcDAO = new DatVanChuyenDAO();
        DoanDuongDAO doanduongDAO = new DoanDuongDAO();
        KhachHangDAO khachDAO = new KhachHangDAO();
        KhoDAO khoDAO = new KhoDAO();
        //LoaiNhanVienDAO
        // LoTrinhTuyenDTO a = new TuyenVanChuyenDTO();
        LoaiVanChuyenDAO loaivcDAO = new LoaiVanChuyenDAO();
        MonHangDAO monhangDAO = new MonHangDAO();
        NhanVienDAO nhanvienDAO = new NhanVienDAO();
        TinhTrangDAO tinhtrangDAO = new TinhTrangDAO();
        TinhTrangXeDAO tinhtrang_xe = new TinhTrangXeDAO();
        TuyenVanChuyenDAO tuyenvcDAO = new TuyenVanChuyenDAO();
        VanChuyenDAO vanchuyenDAO = new VanChuyenDAO();
        XeDAO xeDAO = new XeDAO();
        LoTrinhTuyenDAO ltt = new LoTrinhTuyenDAO();

        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }

        [WebMethod]
        public int CheckLoginNhanVien(String username, String password)
        {
            return nhanvienDAO.CheckLogin(username, password);
        }
        [WebMethod]
        public int GetMaLoaiNV(int MaNhanVien)
        {
            return nhanvienDAO.GetMaLoaiNV(MaNhanVien);
        }

        
        /* Duy Phong */
        // ================= CHINHANH
        [WebMethod]
        public ChiNhanhDTO[] getListCHINHANH()
        {
            return chinhanhDAO.GetAll();
        }

        [WebMethod]
        public bool InsertChiNhanh(ChiNhanhDTO cnDTO)
        {
            return chinhanhDAO.insert(cnDTO);
        }

        [WebMethod]
        public bool UpdateChiNhanh(ChiNhanhDTO cnDTO)
        {
            return chinhanhDAO.update(cnDTO);
        }
        [WebMethod]
        public bool DeleteChiNhanh(int MaChiNhanh)
        {
            return chinhanhDAO.delete(MaChiNhanh);
        }
        // Taolao
        [WebMethod]
        public ChiNhanhDTO[] ListDsChiNhanh()
        {
            ChiNhanhDAO ob = new ChiNhanhDAO();
            return ob.GetAll();

        }
        [WebMethod]
        public ChiNhanhDTO[] TableDsChiNhanh()
        {
            ChiNhanhDAO ob = new ChiNhanhDAO();
            return ob.GetAll();

        }
        // ================= CHUYENVANCHUYEN


        // ================= DATVANCHUYEN
        [WebMethod]
        public bool InsertDATVANCHUYEN(DatVanChuyenDTO dvcDTO)
        {
            return datvcDAO.insert(dvcDTO);
        }
        [WebMethod]
        public DatVanChuyenDTO[] GetListDatVanCuyen()
        {
            return datvcDAO.GetAll();
        }
        [WebMethod]
        public DatVanChuyenDTO[] GetListDatVanChuyenByMaKhachHang(int MaKhachHang)
        {
            return datvcDAO.GetListByMaKhachHang(MaKhachHang);
        }
        // ================= DOANDUONG


        // ================= KHACHHANG
        [WebMethod]
        public bool CheckLogin(String username, String password)
        {
            KhachHangDAO ob = new KhachHangDAO();
            return ob.CheckLogin(username, password);

        }

        [WebMethod]
        public int GetIDUser(string username)
        {
            return khachDAO.GetIDUser(username);
        }

        [WebMethod]
        public bool InsertKhachHang(KhachHangDTO khDTO)
        {
            return khachDAO.insert(khDTO);
        }

        [WebMethod] 
        public bool UpdateTinhTrangKH(int MaKhachHang){

            return khachDAO.UpdateTinhTrang(MaKhachHang);
        }

        [WebMethod]
        public KhachHangDTO[] GetListKHACHHANG()
        {
            return khachDAO.GetAll();
        }
        [WebMethod]
        public bool UpdateTinhTrangKH0(int MaKhachHang)
        {
            return khachDAO.UpdateTinhTrang0(MaKhachHang);
        }
        // ================= KHO

        [WebMethod]
        public KhoDTO[] getListKho()
        {
            return new KhoDAO().GetAll();
        }
        [WebMethod]
        public int GetMaKhoByMaChiNhanh(int MaChiNhanh)
        {
            return khoDAO.GetMaKhoByMaChiNhanh(MaChiNhanh);
        }
        // ================= KHO_CT


        // ================= LICHVANCHUYEN


        // ================= LOAIVANCHUYEN


        // ================= LOTRINHTUYEN

       
        // ================= MONHANG
        [WebMethod]
        public string InsertMONHANG(MonHangDTO mhDTO,KhoDTO khoDTO,DatVanChuyenDTO dvcDTO)
        {
            return monhangDAO.insert(mhDTO, khoDTO,dvcDTO);
        }

        // ================= NHANVIEN
        [WebMethod]
        public LoaiNhanVienDTO[] GetList_LoaiNhanVien()
        {
            LoaiNhanVienDAO ob = new LoaiNhanVienDAO();
            return ob.GetAll();

        }
        [WebMethod]
        public bool insert_NhanVien(NhanVienDTO info)
        {

            NhanVienDAO ob = new NhanVienDAO();
            return ob.insert(info);
        }
        [WebMethod]
        public NhanVienDTO[] GetListNHANVIEN()
        {
            return nhanvienDAO.GetAll();
        }
        [WebMethod]
        public NhanVienDTO[] ChiTietNV(int manv)
        {
            return nhanvienDAO.ChiTietNV(manv);
        }

        // ================= NHANVIEN_CT

        // ================= TINHTRANG

        // ================= TINHTRANG_XE

        // ================= TUYENVANCHUYEN 
        [WebMethod]
        public bool Insert_LoTrinhTuyen(int matuyen, int diadiemdau, int diadiemcuoi)
        {

            return ltt.insert(matuyen, diadiemdau, diadiemcuoi);
        }
        [WebMethod]
        public TuyenVanChuyenDTO[] getListTuyenDuong()
        {
            return tuyenvcDAO.GetAll(); ;
        }
        [WebMethod]
        public String ViewChiTietTuyenDuong(int matuyen)
        {
            return chinhanhDAO.ViewChiTietTuyenDuong(matuyen);
        }
        [WebMethod]
        public bool insert_TuyenDuong(TuyenVanChuyenDTO ltn)
        {
            return tuyenvcDAO.insert(ltn);
        }
        
        // ================= CHI NHANH
        [WebMethod]
        public ChiNhanhDTO[] GetListChiNhanh_1()
        {
            return chinhanhDAO.GetAll();
        }
        [WebMethod]
        public bool Insert_ChiNhanh(ChiNhanhDTO cn)
        {
            return chinhanhDAO.insert(cn);
        }
        // ================= XE
        [WebMethod]
        public XeDTO[] GetListXe()
        {
            XeDTO xedto = new XeDTO();
            return xeDAO.GetAll();
        }
    }
}
